লারাভেল (Laravel) একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা ডাটাবেস ম্যানেজমেন্টে বিশেষভাবে সুবিধাজনক। লারাভেল মাইগ্রেশন (Laravel Migration) ব্যবহার করে আপনি ডাটাবেস স্কিমা (Schema) ম্যানেজ করতে পারেন। এটি আপনাকে ডাটাবেস টেবিল তৈরি, পরিবর্তন এবং মুছে ফেলার জন্য কোড লেখার সুবিধা দেয়, যা ডাটাবেসের কাঠামোকে সংস্করণ নিয়ন্ত্রণে রাখতে সাহায্য করে। এর মাধ্যমে আপনি ডাটাবেসের পরিবর্তনগুলোকে সহজভাবে ট্র্যাক করতে পারেন এবং একাধিক ডেভেলপার একসাথে কাজ করতে পারেন।
মাইগ্রেশন (Migration) হল ডাটাবেস স্কিমার (Structure) পরিবর্তন বা সংস্করণের জন্য ব্যবহৃত একটি প্রক্রিয়া। এটি ডাটাবেসের টেবিল, কলাম এবং অন্যান্য কাঠামোগত পরিবর্তনগুলো পরিচালনা করে। লারাভেল মাইগ্রেশন ব্যবহার করে আপনি এই পরিবর্তনগুলোকে কোডের আকারে লিখতে পারেন, যা পরে অন্যান্য ডেভেলপারদের বা সার্ভারে প্রয়োগ করা যায়। এর মাধ্যমে আপনি ডাটাবেস স্কিমা সংস্করণের ইতিহাস রাখতে পারেন এবং টিমে কাজ করা সহজ হয়।
লারাভেলে মাইগ্রেশন ব্যবহারের জন্য কিছু সাধারণ কমান্ড আছে যা আপনাকে ডাটাবেস টেবিল তৈরি, পরিবর্তন, এবং মুছে ফেলতে সহায়তা করে।
নতুন একটি মাইগ্রেশন তৈরি করতে php artisan make:migration
কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, একটি নতুন posts
টেবিল তৈরি করার জন্য:
php artisan make:migration create_posts_table
এটি database/migrations
ডিরেক্টরিতে একটি নতুন মাইগ্রেশন ফাইল তৈরি করবে।
মাইগ্রেশন ফাইল তৈরি হওয়ার পর, আপনাকে এই ফাইলটি সম্পাদনা করে টেবিলের কাঠামো নির্ধারণ করতে হবে। উদাহরণস্বরূপ, create_posts_table
মাইগ্রেশন ফাইলে posts
টেবিলের জন্য কলাম নির্ধারণ করা যেতে পারে:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
এখানে, up()
মেথডে টেবিল তৈরির কোড রয়েছে এবং down()
মেথডে টেবিল ডিলিট করার কোড রয়েছে। down()
মেথডটি পূর্বের অবস্থায় ফিরে যাওয়ার জন্য ব্যবহৃত হয়, যখন মাইগ্রেশন রিভার্স করতে হয়।
মাইগ্রেশন চালানোর জন্য php artisan migrate
কমান্ড ব্যবহার করা হয়। এটি ডাটাবেসে সকল মাইগ্রেশন প্রয়োগ করবে:
php artisan migrate
এটি আপনার up()
মেথডে যে সব পরিবর্তন ছিল, সেগুলো ডাটাবেসে প্রয়োগ করবে।
যদি আপনি কোন মাইগ্রেশন পরিবর্তন পছন্দ না করেন বা পূর্ববর্তী অবস্থায় ফিরতে চান, তাহলে php artisan migrate:rollback
কমান্ড ব্যবহার করতে পারেন। এটি আপনার down()
মেথডে যে কোড আছে, তা কার্যকর করবে এবং পরিবর্তনগুলো রিভার্স করবে।
php artisan migrate:rollback
যদি আপনি সব মাইগ্রেশন ফিরিয়ে আনতে চান, তাহলে php artisan migrate:reset
কমান্ড ব্যবহার করতে পারেন:
php artisan migrate:reset
এটি সমস্ত মাইগ্রেশন ফিরিয়ে নিয়ে down()
মেথডে থাকা পরিবর্তনগুলো রিভার্স করবে।
যদি আপনি সমস্ত মাইগ্রেশন আবার চালাতে চান, তাহলে php artisan migrate:refresh
কমান্ড ব্যবহার করতে পারেন:
php artisan migrate:refresh
এটি প্রথমে মাইগ্রেশন রিভার্স করবে, তারপর আবার নতুন করে সকল মাইগ্রেশন চালাবে।
লারাভেলে আপনি কলামের ধরন ও অন্যান্য বৈশিষ্ট্য কাস্টমাইজ করতে পারেন। কিছু সাধারণ কলাম টাইপ:
created_at
এবং updated_at
কলাম তৈরি করতে।public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->boolean('is_published')->default(false);
$table->timestamps();
});
}
লারাভেল মাইগ্রেশনকে সিডিং (Seeding) এর সাথে একত্রে ব্যবহার করা হয়, যেখানে ডাটাবেসের জন্য ডামি ডেটা তৈরি করা হয়। মাইগ্রেশন চালানোর পর সিডার চালানোর মাধ্যমে আপনি ডাটাবেসে কিছু ডামি ডেটা ইনসার্ট করতে পারেন।
php artisan db:seed
লারাভেল মাইগ্রেশন একটি অত্যন্ত কার্যকরী টুল যা ডাটাবেস পরিচালনা এবং সংস্করণ নিয়ন্ত্রণে সাহায্য করে। এটি ডেভেলপারদের ডাটাবেসে পরিবর্তন পরিচালনা করা সহজ করে তোলে এবং একাধিক পরিবেশে ডাটাবেস কাঠামো সিঙ্ক্রোনাইজ রাখতে সহায়তা করে।
Read more